home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230S / SETSP.C < prev    next >
Text File  |  1997-07-30  |  3KB  |  119 lines

  1. /* @(#) $Id: setsp.c,v 1.5 1997/07/31 00:44:20 root Exp root $ */
  2.  
  3. #ifdef _lint
  4. void setstack (void)
  5. {
  6. }
  7. #else
  8.  
  9. #ifdef __hp9000s300
  10.         text
  11.         global  _setstack
  12. _setstack:
  13.         mov.l   (%sp),%a0
  14.         mov.l   _newstackptr,%sp
  15.         jmp     (%a0)
  16. #endif
  17.  
  18. #ifdef __hp9000s800
  19.         .SPACE  $TEXT$,SORT=8
  20.         .SUBSPA $CODE$,QUAD=0,ALIGN=4,ACCESS=44,CODE_ONLY,SORT=24
  21. setstack
  22.         .PROC
  23.         .CALLINFO CALLER,FRAME=0
  24.         .ENTRY
  25.         ADDIL   LR'newstackptr-$global$,%r27            ;offset 0x0 '
  26.         LDW     RR'newstackptr-$global$(0,%r1),%r31     ;offset 0x4 '
  27.         BV      %r0(%r2)                                ;offset 0xc
  28.         .EXIT
  29.         COPY    %r31,%r30                               ;patch to set SP
  30.         .PROCEND
  31.  
  32.         .SPACE  $TEXT$
  33.         .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44,SORT=16
  34.         .SUBSPA $CODE$
  35.         .SPACE  $PRIVATE$,SORT=16
  36.         .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16
  37. $THIS_DATA$
  38.  
  39.         .SUBSPA $SHORTDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24
  40. $THIS_SHORTDATA$
  41.  
  42.         .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
  43. $THIS_BSS$
  44.  
  45.         .SUBSPA $SHORTBSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=80
  46. $THIS_SHORTBSS$
  47.  
  48.         .SUBSPA $STATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=16
  49. $STATIC_DATA$
  50.  
  51.         .SUBSPA $SHORTSTATICDATA$,QUAD=1,ALIGN=8,ACCESS=31,SORT=24
  52. $SHORT_STATIC_DATA$
  53.  
  54.         .IMPORT $global$,DATA
  55.         .IMPORT newstackptr,DATA
  56.         .SPACE  $TEXT$
  57.         .SUBSPA $CODE$
  58.         .EXPORT setstack,ENTRY,PRIV_LEV=3
  59.         .END
  60. #endif
  61.  
  62. #ifdef linux
  63.         .file   "setsp.s"
  64. #ifdef __ELF__
  65.         .globl  setstack
  66. setstack:
  67.         movl    %esp, %ebp
  68.         movl    newstackptr, %esp
  69. #else
  70.         .globl  _setstack
  71. _setstack:
  72.         movl    %esp, %ebp
  73.         movl    _newstackptr, %esp
  74. #endif
  75.         jmp     *(%ebp)
  76.         .align  4
  77. #endif
  78.  
  79. #ifdef __386BSD__
  80.         .file   "setsp.s"
  81.         .globl  _setstack
  82. _setstack:
  83.         movl    %esp, %ebp
  84.         movl    _newstackptr, %esp
  85.         jmp     *(%ebp)
  86.         .align  4
  87. #endif
  88.  
  89. #ifdef __FreeBSD__
  90.         .file   "setsp.s"
  91.         .globl  _setstack
  92. _setstack:
  93.         movl    %esp, %ebp
  94.         movl    _newstackptr, %esp
  95.         jmp     *(%ebp)
  96.         .align  4
  97. #endif
  98.  
  99. #ifdef __bsdi__
  100.         .file   "setsp.s"
  101.         .globl  _setstack
  102. _setstack:
  103.         movl    %esp, %ebp
  104.         movl    _newstackptr, %esp
  105.         jmp     *(%ebp)
  106.         .align  4
  107. #endif
  108.  
  109. #ifdef RISCiX
  110.         .text
  111.         .global _setstack
  112. _setstack:
  113.         mov     r13,r0
  114.         movs    r15,r14
  115. #endif
  116.  
  117. #endif
  118.  
  119.